package com.showsu.editor.entity.remote.r52;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Author: William
 * @Description: https://apifox.com/apidoc/shared-8b412119-c090-4e01-80bb-5d15c871379a/api-141029112 的响应结果
 * @Date: Created in 6:11 下午 2024/1/25
 * @Modified By:
 */
@Data
public class R52XhsAwemeDetailResult implements Serializable {

    private Integer code;
    private String msg;
    private R52XhsAwemeDetailData data;

    @Data
    public class R52XhsAwemeDetailData implements Serializable {
        private Long current_time;
        private List<Item> items;
        private String msg;

        @Data
        public class Item implements Serializable {
            private String id;
            private String model_type;
            private Note note_card;

            @Data
            public class Note implements Serializable {
                private String desc;
                private List<Cover> image_list;
                private InteractInfo interact_info;
                private Long last_update_time;
                private String note_id;
                private ShareInfo share_info;
                private List<Tag> tag_list;
                private Long time;
                private String title;
                private String type;
                private User user;

                @Data
                public class Cover implements Serializable {
                    private String fileid;
                    private Integer height;
                    private Integer width;
                    private String url_default;
                    private String url_pre;
                    private List<CoverInfo> info_list;
                    private Boolean live_photo;
                    private Stream stream;

                    @Data
                    public class CoverInfo implements Serializable {
                        private String image_scene;
                        private String url;
                    }

                    @Data
                    public class Stream implements Serializable {
                        private List<H264> h264;

                        @Data
                        public class H264 implements Serializable {
                            private String master_url;
                            private List<String> backup_urls;
                        }
                    }
                }

                @Data
                public class User implements Serializable {
                    private String avatar;
                    private String nickname;
                    private String user_id;
                }

                @Data
                public class ShareInfo implements Serializable {
                    private Boolean un_share;
                }

                @Data
                public class Tag implements Serializable {
                    private String id;
                    private String name;
                    private String type;
                }

                @Data
                public class InteractInfo implements Serializable {
                    private Boolean liked;
                    private Integer liked_count;
                    private Boolean collected;
                    private Integer collected_count;
                    private Integer comment_count;
                    private Boolean followed;
                    private String relation;
                    private Integer share_count;
                }
            }
        }
    }
}
